#ifndef UTILS_TYPES_COMMON_H
#define UTILS_TYPES_COMMON_H

#ifndef __ASSEMBLY__

#include <fcntl.h>
#include <stddef.h>
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <stdbool.h>
#include <limits.h>

#define __bitwise

typedef unsigned char __u8;
typedef __signed__ char __s8;

typedef unsigned short __u16;
typedef __signed__ short __s16;

typedef unsigned int __u32;
typedef __signed__ int __s32;

#ifdef __GNUC__
__extension__ typedef unsigned long long __u64;
__extension__ typedef __signed__ long long __s64;
#else
typedef unsigned long long __u64;
typedef __signed__ long long __s64;
#endif

typedef __u8 u8;
typedef __s8 s8;

typedef __u16 u16;
typedef __s16 s16;

typedef __u32 u32;
typedef __s32 s32;

typedef __u64 u64;
typedef __s64 s64;

typedef __u16 __bitwise __le16;
typedef __u16 __bitwise __be16;
typedef __u32 __bitwise __le32;
typedef __u32 __bitwise __be32;
typedef __u64 __bitwise __le64;
typedef __u64 __bitwise __be64;

#endif /* !__ASSEMBLY__ */
#endif /* !UTILS_TYPES_COMMON_H */
